Implementation of binary floating-point arithmetic on embedded integer processors - Polynomial evaluation-based algorithms and certified code generation
نویسنده
چکیده
Today some embedded systems still do not integrate their own floating-point unit, for area, cost, or energy consumptionconstraints. However, this kind of architectures is widely used in application domains highly demanding on floating-point calculations (multimedia, audio and video, or telecommunications). To compensate this lack of floating-pointhardware, floating-point arithmetic has to be emulated efficiently through a software implementation.This thesis addresses the design and implementation of an efficient software support for IEEE 754 floating-pointarithmetic on embedded integer processors. More specifically, it proposes new algorithms and tools for the efficientgeneration of fast and certified programs, allowing in particular to obtain C codes of very low latency for polynomialevaluation in fixed-point arithmetic. Compared to fully hand-written implementations, these tools allow to signifi-cantly reduce the development time of floating-point operators.The first part of the thesis deals with the design of optimized algorithms for some binary floating-point operators,and gives details on their software implementation for thebinary32 floating-point format and for some embeddedVLIW integer processors like those of the STMicroelectronics ST200 family. In particular, we propose here a uniformapproach for correctly-rounded roots and their reciprocals, and an extension to division. Our approach, which relieson the evaluation of a single bivariate polynomial, allows higher ILP-exposure than previous methods and turns out tobe particularly efficient in practice. This work allowed us to produce a fully revised version of the FLIP library, leadingto significant gains compared to the previous version.The second part of the thesis presents a methodology for automatically and efficiently generating fast and certifiedC codes for the evaluation of bivariate polynomials in fixed-point arithmetic. In particular, it consists of some heuristicsfor computing highly parallel, low-latency evaluation schemes, as well as some techniques to check if those schemesremain efficient on a real target, and accurate enough to ensure correct rounding of the underlying operator implemen-tations. This approach has been implemented in the software tool CGPE (Code Generation for Polynomial Evaluation).We have used our tool to quickly generate and certify significant parts of the codes of FLIP.
منابع مشابه
Approach based on instruction selection for fast and certified code generation
Nowadays floating-point arithmetic [1] has become ubiquitous in the specification and implementation of programs, including those targeted at embedded systems. However, for the sake of chip area or power consumption constraints, some of these embedded systems are still shipped with no floatingpoint unit. In this case, only integer arithmetic is available at the hardware level. Hence, in order t...
متن کاملFloating Point to Fixed Point Conversion of C Code
In processors that do not support floating-point instructions, using fixed-point arithmetic instead of floating-point emulation trades off computation accuracy for execution speed. This trade-off is often profitable. In many cases, like embedded systems, low-cost and speed bounds make it the only acceptable option. We present an environment supporting fixed-point code generation from C programs...
متن کاملAdaptive Mapping of Linear DSP Algorithms to Fixed-Point Arithmetic
Introduction Embedded DSP (digital signal processing) applications are typically implemented using fixed point arithmetic; in hardware to reduce area requirements and increase throughput, but also in software since most embedded processors do not provide floating point arithmetic. Consequently, the developer is confronted with the difficult task of deciding on the fixed point format, i.e., the ...
متن کاملConverting Models from Floating Point to Fixed Point for Production Code Generation
An essential step in embedded software development, floatingto fixed-point conversion can be tedious, labor-intensive, and error-prone. System engineers frequently design algorithms in floating-point math, usually double-precision. This format represents the ideal algorithm behavior but takes little account of the algorithm’s final realization in production software and hardware. Software engin...
متن کاملDesign and Implementation of Numerical Linear Algebra Algorithms on Fixed Point DSPs
Numerical linear algebra algorithms use the inherent elegance of matrix formulations and are usually implemented using C/C++ floating point representation. The system implementation is faced with practical constraints because these algorithms usually need to run in real time on fixed point digital signal processors (DSPs) to reduce total hardware costs. Converting the simulation model to fixed ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009